package com.bw.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.bw.service.EduWeekService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
public class EduWeekController {
    @Autowired
    EduWeekService eduWeekService;

    //9）使用存储过程查询订单状态为已支付（1002）总金额sql语句（5分）
    @RequestMapping("/findPro")
    public Object findPro(String status){
        //1. 拿到数据库的数据
        List<Map> list = eduWeekService.findPro(status);
        //2. 返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        jsonObject.put("data",list.get(0).get("total"));
        return jsonObject;
    }

    //10）根据各省份查询订单的总成交额sql语句（5分）
    @RequestMapping("/findProTotal")
    public Object findProTotal(){
        //1. 拿到数据库的数据
        List<Map> list = eduWeekService.findProTotal();
        //2. 返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        //2.1 data 需要{}
        JSONObject dataObject = new JSONObject();
        JSONArray mapArray = new JSONArray();
        for (Map map : list) {
            JSONObject maoObject = new JSONObject();
            maoObject.put("name",map.get("name"));
            maoObject.put("value",map.get("total"));
            mapArray.add(maoObject);
        }
        dataObject.put("mapData",mapArray);
        dataObject.put("valueName","订单的总金额");
        jsonObject.put("data",dataObject);
        return jsonObject;
    }
    //11）求出各试卷平均成绩大于60的sql语句（5分）
    @RequestMapping("/findParAvg")
    public Object findParAvg(){
        //1. 拿到数据库的数据
        List<Map> list = eduWeekService.findParAvg();
        //2. 返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONObject dataObject = new JSONObject();
        JSONArray cateArray = new JSONArray();
        for (Map map : list) {
            cateArray.add(map.get("name"));
        }
        dataObject.put("categories",cateArray);
        JSONArray serArray = new JSONArray();
        JSONObject nameObject = new JSONObject();
        nameObject.put("name","试卷名称");
        JSONArray dataArray = new JSONArray();
        for (Map map : list) {
            dataArray.add(map.get("avg"));
        }
        nameObject.put("data",dataArray);
        serArray.add(nameObject);
        dataObject.put("series",serArray);
        jsonObject.put("data",dataObject);
        return jsonObject;
    }

    //12）查询测验分数的最高与最低的差值sql语句（5分）
    @RequestMapping("/findChaZhi")
    public Object findChaZhi(){
        return eduWeekService.findChaZhi();
    }

    //13）查询测验分数的最高测验表信息sql语句（5分）

    //14）查询各订单状态的个数sql语句（5分）
    //15）查询各省份下单的用户人数超过10000 的sql语句（5分）
}
